Skip to content

Commit f82a484

Browse files
committed
Polishing.
Use consistently domain type instead of introducing a new terminology to repository infrastructure. Rename Kotlin variant of ParameterUnitTests to KParameterUnitTests to avoid duplicate classes. See #2770 Original pull request: #2771
1 parent 16e7e7c commit f82a484

File tree

5 files changed

+32
-29
lines changed

5 files changed

+32
-29
lines changed

src/main/java/org/springframework/data/repository/query/Parameter.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,20 @@ protected Parameter(MethodParameter parameter) {
7979
}
8080

8181
/**
82-
* Creates a new {@link Parameter} for the given {@link MethodParameter} and aggregate {@link TypeInformation}.
82+
* Creates a new {@link Parameter} for the given {@link MethodParameter} and domain {@link TypeInformation}.
8383
*
8484
* @param parameter must not be {@literal null}.
85-
* @param aggregateType must not be {@literal null}.
85+
* @param domainType must not be {@literal null}.
86+
* @since 3.0.2
8687
*/
87-
protected Parameter(MethodParameter parameter, TypeInformation<?> aggregateType) {
88+
protected Parameter(MethodParameter parameter, TypeInformation<?> domainType) {
8889

8990
Assert.notNull(parameter, "MethodParameter must not be null");
90-
Assert.notNull(aggregateType, "TypeInformation must not be null!");
91+
Assert.notNull(domainType, "TypeInformation must not be null!");
9192

9293
this.parameter = parameter;
9394
this.parameterType = potentiallyUnwrapParameterType(parameter);
94-
this.isDynamicProjectionParameter = isDynamicProjectionParameter(parameter, aggregateType);
95+
this.isDynamicProjectionParameter = isDynamicProjectionParameter(parameter, domainType);
9596
this.name = isSpecialParameterType(parameter.getParameterType()) ? Lazy.of(Optional.empty()) : Lazy.of(() -> {
9697
Param annotation = parameter.getParameterAnnotation(Param.class);
9798
return Optional.ofNullable(annotation == null ? parameter.getParameterName() : annotation.value());
@@ -218,10 +219,10 @@ boolean isSort() {
218219
* </code>
219220
*
220221
* @param parameter must not be {@literal null}.
221-
* @param aggregateType the reference aggregate type, must not be {@literal null}.
222+
* @param domainType the reference domain type, must not be {@literal null}.
222223
* @return
223224
*/
224-
private static boolean isDynamicProjectionParameter(MethodParameter parameter, TypeInformation<?> aggregateType) {
225+
private static boolean isDynamicProjectionParameter(MethodParameter parameter, TypeInformation<?> domainType) {
225226

226227
if (!parameter.getParameterType().equals(Class.class)) {
227228
return false;
@@ -241,7 +242,7 @@ private static boolean isDynamicProjectionParameter(MethodParameter parameter, T
241242
var unwrapped = QueryExecutionConverters.unwrapWrapperTypes(returnType);
242243
var reactiveUnwrapped = ReactiveWrapperConverters.unwrapWrapperTypes(unwrapped);
243244

244-
if (aggregateType.isAssignableFrom(reactiveUnwrapped)) {
245+
if (domainType.isAssignableFrom(reactiveUnwrapped)) {
245246
return false;
246247
}
247248

src/main/java/org/springframework/data/repository/query/Parameters.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ public Parameters(Method method) {
7777
*
7878
* @param method must not be {@literal null}.
7979
* @param parameterFactory must not be {@literal null}.
80+
* @since 3.0.2
8081
*/
8182
protected Parameters(Method method, Function<MethodParameter, T> parameterFactory) {
8283

@@ -176,7 +177,7 @@ private S getBindable() {
176177
*
177178
* @param parameter will never be {@literal null}.
178179
* @return
179-
* @deprecated since 3.1, in your extension, call {@link #Parameters(Method, ParameterFactory)} instead.
180+
* @deprecated since 3.1, in your extension, call {@link #Parameters(Method, Function)} instead.
180181
*/
181182
@SuppressWarnings("unchecked")
182183
@Deprecated(since = "3.1", forRemoval = true)

src/main/java/org/springframework/data/repository/query/QueryMethod.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,10 @@ public QueryMethod(Method method, RepositoryMetadata metadata, ProjectionFactory
6969
Assert.notNull(metadata, "Repository metadata must not be null");
7070
Assert.notNull(factory, "ProjectionFactory must not be null");
7171

72-
Parameters.TYPES.stream()
73-
.filter(type -> getNumberOfOccurrences(method, type) > 1)
74-
.findFirst().ifPresent(type -> {
75-
throw new IllegalStateException(
76-
String.format("Method must have only one argument of type %s; Offending method: %s",
77-
type.getSimpleName(), method));
72+
Parameters.TYPES.stream() //
73+
.filter(type -> getNumberOfOccurrences(method, type) > 1).findFirst().ifPresent(type -> {
74+
throw new IllegalStateException(String.format(
75+
"Method must have only one argument of type %s; Offending method: %s", type.getSimpleName(), method));
7876
});
7977

8078
this.method = method;
@@ -132,11 +130,12 @@ public QueryMethod(Method method, RepositoryMetadata metadata, ProjectionFactory
132130
* Creates a {@link Parameters} instance.
133131
*
134132
* @param method must not be {@literal null}.
135-
* @param aggregateType must not be {@literal null}.
133+
* @param domainType must not be {@literal null}.
136134
* @return must not return {@literal null}.
135+
* @since 3.0.2
137136
*/
138-
protected Parameters<?, ?> createParameters(Method method, TypeInformation<?> aggregateType) {
139-
return new DefaultParameters(method, aggregateType);
137+
protected Parameters<?, ?> createParameters(Method method, TypeInformation<?> domainType) {
138+
return new DefaultParameters(method, domainType);
140139
}
141140

142141
/**

src/test/java/org/springframework/data/repository/query/ParameterUnitTests.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Collections;
2121
import java.util.List;
2222
import java.util.Optional;
23+
import java.util.function.Function;
2324
import java.util.stream.Stream;
2425

2526
import org.jetbrains.annotations.NotNull;
@@ -34,6 +35,7 @@
3435
* Unit tests for {@link Parameter}.
3536
*
3637
* @author Jens Schauder
38+
* @author Oliver Drotbohm
3739
*/
3840
class ParameterUnitTests {
3941

@@ -69,9 +71,9 @@ Stream<DynamicTest> doesNotConsiderClassParametersDynamicProjectionOnes() {
6971
"staticReturnNonDynamicBindWildcard", //
7072
"staticReturnNonDynamicBindWildcardExtends");
7173

72-
return DynamicTest.stream(methods, it -> it, it -> {
73-
assertThat(new Parameter(getMethodParameter(it), TypeInformation.of(User.class))
74-
.isDynamicProjectionParameter()).isFalse();
74+
return DynamicTest.stream(methods, Function.identity(), it -> {
75+
Parameter parameter = new Parameter(getMethodParameter(it), TypeInformation.of(User.class));
76+
assertThat(parameter.isDynamicProjectionParameter()).isFalse();
7577
});
7678
}
7779

src/test/kotlin/org/springframework/data/repository/query/ParameterUnitTests.kt renamed to src/test/kotlin/org/springframework/data/repository/query/KParameterUnitTests.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ import kotlin.reflect.jvm.javaMethod
2626
*
2727
* @author Mark Paluch
2828
*/
29-
class ParameterUnitTests {
29+
class KParameterUnitTests {
3030

31-
@Test // DATACMNS-1508
32-
fun `should consider Continuation a special parameter`() {
31+
@Test // DATACMNS-1508
32+
fun `should consider Continuation a special parameter`() {
3333

34-
val methodParameter =
35-
MethodParameter(MyCoroutineRepository::hello.javaMethod!!, 0)
36-
methodParameter.initParameterNameDiscovery(DefaultParameterNameDiscoverer())
37-
val parameter = Parameter(methodParameter)
34+
val methodParameter =
35+
MethodParameter(MyCoroutineRepository::hello.javaMethod!!, 0)
36+
methodParameter.initParameterNameDiscovery(DefaultParameterNameDiscoverer())
37+
val parameter = Parameter(methodParameter)
3838

39-
assertThat(parameter.name).isEmpty()
39+
assertThat(parameter.name).isEmpty()
4040
assertThat(parameter.isBindable).isFalse()
4141
}
4242

0 commit comments

Comments
 (0)