protected function wrapPHPValue($parameter)
{
switch ($parameter['default']['type']) {
case 'null':
return 'null';
break;
case 'string':
case 'char':
return '"' . addslashes($parameter['default']['value']) . '"';
break;
case 'empty-array':
return 'array()';
break;
case 'array':
$parameters = array();
foreach ($parameter['default']['left'] as $value) {
$source = '';
if (isset($value['key'])) {
$source .= $this->wrapPHPValue(array('default' => $value['key'], 'type' => $value['key']['type'])) . ' => ';
}
$parameters[] = $source . $this->wrapPHPValue(array('default' => $value['value'], 'type' => $value['value']['type']));
}
return 'array(' . implode(', ', $parameters) . ')';
break;
case 'static-constant-access':
return $parameter['default']['left']['value'] . '::' . $parameter['default']['right']['value'];
break;
case 'int':
case 'double':
case 'bool':
return $parameter['default']['value'];
break;
default:
throw new Exception('Stubs - value with type: ' . $parameter['default']['type'] . ' is not supported');
break;
}
}