private function set_delegates()
{
$delegates = $this->class->getStaticPropertyValue('delegate', array());
$new = array();
if (!array_key_exists('processed', $delegates)) {
$delegates['processed'] = false;
}
if (!empty($delegates) && !$delegates['processed']) {
foreach ($delegates as &$delegate) {
if (!is_array($delegate) || !isset($delegate['to'])) {
continue;
}
if (!isset($delegate['prefix'])) {
$delegate['prefix'] = null;
}
$new_delegate = array('to' => $delegate['to'], 'prefix' => $delegate['prefix'], 'delegate' => array());
foreach ($delegate as $name => $value) {
if (is_numeric($name)) {
$new_delegate['delegate'][] = $value;
}
}
$new[] = $new_delegate;
}
$new['processed'] = true;
$this->class->setStaticPropertyValue('delegate', $new);
}
}