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 83585111f..da9bec417 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. @@ -37,7 +37,6 @@ fun ExecutableFindOperation.query(entityClass: KClass): ExecutableF inline fun ExecutableFindOperation.query(): ExecutableFindOperation.ExecutableFind = query(T::class.java) - /** * Extension for [ExecutableFindOperation.FindWithProjection. as] providing a [KClass] based variant. * @@ -45,7 +44,7 @@ inline fun ExecutableFindOperation.query(): ExecutableFindOper * @author Mark Paluch * @since 2.0 */ -fun ExecutableFindOperation.FindWithProjection.asType(resultType: KClass): ExecutableFindOperation.FindWithQuery = +fun ExecutableFindOperation.FindWithProjection<*>.asType(resultType: KClass): ExecutableFindOperation.FindWithQuery = `as`(resultType.java) /** @@ -55,7 +54,7 @@ fun ExecutableFindOperation.FindWithProjection.asType(resultType: K * @author Mark Paluch * @since 2.0 */ -inline fun ExecutableFindOperation.FindWithProjection.asType(): ExecutableFindOperation.FindWithQuery = +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 37531f4ae..815d7efa5 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 4f8a60d34..40edc7029 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. @@ -53,24 +53,24 @@ 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) } - @Test // DATAMONGO-1761 + @Test // DATAMONGO-1761, DATAMONGO-2086 fun `ExecutableFindOperation#DistinctWithProjection#asType(KClass) extension should call its Java counterpart`() { - distinctWithProjection.asType(First::class) - verify(distinctWithProjection).`as`(First::class.java) + distinctWithProjection.asType(User::class) + verify(distinctWithProjection).`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 7e0ee6c97..22cdd36c8 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. @@ -52,24 +52,24 @@ 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) } - @Test // DATAMONGO-1761 + @Test // DATAMONGO-1761, DATAMONGO-2086 fun `ReactiveFind#DistinctWithProjection#asType(KClass) extension should call its Java counterpart`() { - distinctWithProjection.asType(First::class) - verify(distinctWithProjection).`as`(First::class.java) + distinctWithProjection.asType(User::class) + verify(distinctWithProjection).`as`(User::class.java) } }