Adds returns function to ResolverDSL to allow generic queries #140
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The pull request proposes some changes I introduced to implement the functionality I mentioned in issue #139 .
The changes don't break any of the existing code, however I touched upon a couple of files and I am not super satisfied with the outcome. Ie. I need to catch some internal Kotlin reflection exceptions to prevent the checks for a valid return type from failing early in the resolver construction. Because I will supply the expected return type explicitly in a secondary call in the ResolverDSL, similar to the withArgs. The explicit type resolution works similar to the DataLoaderProperty. Also, I had to add another method to the Target interface in the ResolverDSL which has the unfortunate side effect that there are now some methods in some of the other subclasses, where those function currently do nothing, because I didn't see the need for the generic support there (might be useful there as well though).
The code works now as I envisioned as can be shown in the tests I added. However, I am not 100% sure if the code is really merge ready. Nonetheless I hope this pull request is still somewhat helpful.