This example illustrates how to use directors to implement C++ callbacks in Java.
Please note that unlike Python, Java does not have an equivalent concept of
weak references, so the program has to manually clean up after objects. The
implication of this is that the Caller class cannot claim
ownership of the Callback object in Caller.setCallback()
and delete it.