Add support for custom function registration in Java API #101
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 Clojure API makes it simple to register custom function definitions by defining a new dispatch for the
call-fn
multimethod.On Java side we do not have such an easy way to achieve this, without reimplementing
API.render
. I had multiple approaches in my mind:FunctionEvaluator
. This would change the global state, so it can have unexpected consequences.FunctionEvaluator
instance during the render phase. I went with this approach.I added a new
API.render
overload which accepts custom function implementations as its final parameter.I also added test cases. NB: It looks like
lein test
does not run the jUnit tests injava-src
.