-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Adding Kotlin extensions methods for projection. #1515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good - couple of recommended changes.
driver-kotlin-extensions/src/main/kotlin/com/mongodb/kotlin/client/model/Properties.kt
Show resolved
Hide resolved
driver-kotlin-extensions/src/test/kotlin/com/mongodb/kotlin/client/model/ProjectionTest.kt
Outdated
Show resolved
Hide resolved
driver-kotlin-extensions/src/main/kotlin/com/mongodb/kotlin/client/model/Projections.kt
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good.
Remember to add a test to ExtensionsApiTest
to ensure we capture all Projections methods and have a regression test incase future ones are added.
driver-kotlin-extensions/src/main/kotlin/com/mongodb/kotlin/client/model/Projections.kt
Outdated
Show resolved
Hide resolved
driver-kotlin-extensions/src/main/kotlin/com/mongodb/kotlin/client/model/Projections.kt
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I fixed some @since
nits and pushed to your repo @nhachicha as they were only minor.
LGTM!
* Adding Kotlin extensions methods for projection. Fixes JAVA-5603 --------- Co-authored-by: Ross Lawley <[email protected]>
* Helper methods and extensions to improve kotlin interop. (#1478) Adds a new package `org.mongodb.mongodb-driver-kotlin-extensions`. Its both, kotlin driver and bson kotlin implementation agnostic. Can be used with any combination of `bson-kotlin`, `bson-kotlinx`, `mongodb-driver-kotlin-sync` and `mongodb-driver-kotlin-coroutine`. Initial Filters extensions support, with both inflix and nested helpers eg: ``` import com.mongodb.kotlin.client.model.Filters.eq // infix Person::name.eq(person.name) // nested val bson = eq(Person::name, person.name) ``` Also adds path based support which works with vairous annotations on the data class: `@SerialName("_id")`, `@BsonId`, `@BsonProperty("_id")`: ``` (Restaurant::reviews / Review::score).path() == "reviews.rating" ``` JAVA-5308 JAVA-5484 * Gradle: Support custom header annotation * Added since annotation to Filters.kt JAVA-5308 * Adding Kotlin extensions methods for projection. (#1515) * Adding Kotlin extensions methods for projection. Fixes JAVA-5603 --------- Co-authored-by: Ross Lawley <[email protected]> * Adding Kotlin extensions methods for updates (#1529) * Adding Kotlin extension function for Updates operations JAVA-5601 * Grouping static checks under the same task (#1526) * Grouping all static checks under the "check" task JAVA-5633 * Add extension methods for Indexes (#1532) JAVA-5604 * Adding extension methods for Sorts (#1533) JAVA-5602 * Adding extensions for Aggregators and Accumulators (#1562) * Adding extensions for Aggregators and Accumulators --------- Co-authored-by: Ross Lawley <[email protected]> Co-authored-by: Ross Lawley <[email protected]>
Fixes JAVA-5603.
Based on kmongo-property with more tests and a bug fix in the path extension method throwing an NPE for calculated properties without a Kotlin backing field.