Helper class for internal use only. This allows to call a given method and
convert the result to a boolean. It will do this by caching the method call
as well as the "asBoolean" in
CallSiteArray
fashion. "asBoolean" will not be
called if the result is null or a Boolean. In case of null we return false and
in case of a Boolean we simply unbox. This logic is designed after the one present
in
DefaultTypeTransformation.castToBoolean(Object)
. The purpose of
this class is to avoid the slow "asBoolean" call in that method.
The nature of this class allows a per instance caching instead of a per class
caching like the normal
CallSiteArray
logic.