public function doClear($namespace = null)
{
if ($this->arrayAccess instanceof \Traversable) {
$keys = array_keys(iterator_to_array($this->arrayAccess, true));
foreach ($keys as $key) {
if ($namespace === null || strpos($key, $namespace) === 0) {
unset($this->arrayAccess[$key]);
}
}
} else {
throw new PinqException('Cannot clear cache %s: does not support clearing', get_class($this->arrayAccess));
}
}