protected function raiseRowDelegate($handler, $param)
{
if (is_string($handler)) {
call_user_func($handler, $this, $param);
} else {
if (is_callable($handler, true)) {
// an array: 0 - object, 1 - method name/path
list($object, $method) = $handler;
if (is_string($object)) {
// static method call
call_user_func($handler, $this, $param);
} else {
if (($pos = strrpos($method, '.')) !== false) {
$object = $this->getSubProperty(substr($method, 0, $pos));
$method = substr($method, $pos + 1);
}
$object->{$method}($this, $param);
}
} else {
throw new TInvalidDataValueException('sqlmap_invalid_delegate', $this->getID(), $handler);
}
}
}