diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt index f51621f5d..4788ccaac 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2017 the original author or authors. + * Copyright 2017-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ import kotlin.reflect.KClass * @since 2.0 */ fun ExecutableFindOperation.query(entityClass: KClass): ExecutableFindOperation.ExecutableFind = - query(entityClass.java) + query(entityClass.java) /** * Extension for [ExecutableFindOperation.query] leveraging reified type parameters. @@ -35,8 +35,7 @@ fun ExecutableFindOperation.query(entityClass: KClass): ExecutableF * @since 2.0 */ inline fun ExecutableFindOperation.query(): ExecutableFindOperation.ExecutableFind = - query(T::class.java) - + query(T::class.java) /** * Extension for [ExecutableFindOperation.FindWithProjection. as] providing a [KClass] based variant. @@ -45,8 +44,8 @@ inline fun ExecutableFindOperation.query(): ExecutableFindOper * @author Mark Paluch * @since 2.0 */ -fun ExecutableFindOperation.FindWithProjection.asType(resultType: KClass): ExecutableFindOperation.FindWithQuery = - `as`(resultType.java) +fun ExecutableFindOperation.FindWithProjection<*>.asType(resultType: KClass): ExecutableFindOperation.FindWithQuery = + `as`(resultType.java) /** * Extension for [ExecutableFindOperation.FindWithProjection. as] leveraging reified type parameters. @@ -55,7 +54,5 @@ fun ExecutableFindOperation.FindWithProjection.asType(resultType: K * @author Mark Paluch * @since 2.0 */ -inline fun ExecutableFindOperation.FindWithProjection.asType(): ExecutableFindOperation.FindWithQuery = - `as`(T::class.java) - - +inline fun ExecutableFindOperation.FindWithProjection<*>.asType(): ExecutableFindOperation.FindWithQuery = + `as`(T::class.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensions.kt index 354bae8e5..d12218be6 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2017 the original author or authors. + * Copyright 2017-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,7 +41,7 @@ inline fun ReactiveFindOperation.query(): ReactiveFindOperatio * @author Mark Paluch * @since 2.0 */ -fun ReactiveFindOperation.FindWithProjection.asType(resultType: KClass): ReactiveFindOperation.FindWithQuery = +fun ReactiveFindOperation.FindWithProjection<*>.asType(resultType: KClass): ReactiveFindOperation.FindWithQuery = `as`(resultType.java) /** @@ -50,7 +50,7 @@ fun ReactiveFindOperation.FindWithProjection.asType(resultType: KCl * @author Mark Paluch * @since 2.0 */ -inline fun ReactiveFindOperation.FindWithProjection.asType(): ReactiveFindOperation.FindWithQuery = +inline fun ReactiveFindOperation.FindWithProjection<*>.asType(): ReactiveFindOperation.FindWithQuery = `as`(T::class.java) diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensionsTests.kt index 7d61ee20b..0fd94a8c2 100644 --- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensionsTests.kt +++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensionsTests.kt @@ -1,5 +1,5 @@ /* - * Copyright 2017 the original author or authors. + * Copyright 2017-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,18 +50,17 @@ class ExecutableFindOperationExtensionsTests { verify(operation).query(First::class.java) } - @Test // DATAMONGO-1689 + @Test // DATAMONGO-1689, DATAMONGO-2086 fun `ExecutableFindOperation#FindOperationWithProjection#asType(KClass) extension should call its Java counterpart`() { - operationWithProjection.asType(First::class) - verify(operationWithProjection).`as`(First::class.java) + operationWithProjection.asType(User::class) + verify(operationWithProjection).`as`(User::class.java) } - @Test // DATAMONGO-1689 + @Test // DATAMONGO-1689, DATAMONGO-2086 fun `ExecutableFindOperation#FindOperationWithProjection#asType() with reified type parameter extension should call its Java counterpart`() { - operationWithProjection.asType() - verify(operationWithProjection).`as`(First::class.java) + operationWithProjection.asType() + verify(operationWithProjection).`as`(User::class.java) } - } diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensionsTests.kt index fda680cb7..e9fa94b1c 100644 --- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensionsTests.kt +++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensionsTests.kt @@ -1,5 +1,5 @@ /* - * Copyright 2017 the original author or authors. + * Copyright 2017-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,17 +49,17 @@ class ReactiveFindOperationExtensionsTests { verify(operation).query(First::class.java) } - @Test // DATAMONGO-1719 + @Test // DATAMONGO-1719, DATAMONGO-2086 fun `ReactiveFind#FindOperatorWithProjection#asType(KClass) extension should call its Java counterpart`() { - operationWithProjection.asType(First::class) - verify(operationWithProjection).`as`(First::class.java) + operationWithProjection.asType(User::class) + verify(operationWithProjection).`as`(User::class.java) } - @Test // DATAMONGO-1719 + @Test // DATAMONGO-1719, DATAMONGO-2086 fun `ReactiveFind#FindOperatorWithProjection#asType() with reified type parameter extension should call its Java counterpart`() { - operationWithProjection.asType() - verify(operationWithProjection).`as`(First::class.java) + operationWithProjection.asType() + verify(operationWithProjection).`as`(User::class.java) } }