Package org.codehaus.groovy.runtime.callsite

# Class BooleanClosureWrapper

java.lang.Object
org.codehaus.groovy.runtime.callsite.BooleanClosureWrapper

public class BooleanClosureWrapper extends Object
Helper class for internal use only. This allows to call a `Closure` and convert the result to a boolean. It will do this by caching the possible "doCall" 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. `BooleanReturningMethodInvoker` is used for caching.

Author:
  Jochen "blackdrag" Theodorou

## Constructor Summary

Constructors
Constructor
Description
`BooleanClosureWrapper(Closure wrapped)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`call(Object... args)`
normal closure call
`<K, V> boolean`
`callForMap(Map.Entry<K,V> entry)`
Bridge for a call based on a map entry.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### BooleanClosureWrapper

public BooleanClosureWrapper(Closure wrapped)

## Method Details

### call

public boolean call(Object... args)
normal closure call

### callForMap

public <K, V> boolean callForMap(Map.Entry<K,V> entry)
Bridge for a call based on a map entry. If the call is done on a `Closure` taking one argument, then we give in the `Map.Entry`, otherwise we will give in the key and value.