public function invokeLifecycleCallbacks($lifecycleEvent, $document, array $arguments = null)
{
foreach ($this->lifecycleCallbacks[$lifecycleEvent] as $callback) {
if ($arguments !== null) {
call_user_func_array(array($document, $callback), $arguments);
} else {
$document->{$callback}();
}
}
}