private function handleClassExtension(&$class, &$data, Type $type, $parentName)
{
if ($alias = $this->getTypeAlias($type)) {
$property = array();
$property["expose"] = true;
$property["xml_value"] = true;
$property["access_type"] = "public_method";
$property["accessor"]["getter"] = "value";
$property["accessor"]["setter"] = "value";
$property["type"] = $alias;
$data["properties"]["__value"] = $property;
} else {
$extension = $this->visitType($type, true);
if (isset($extension['properties']['__value']) && count($extension['properties']) === 1) {
$data["properties"]["__value"] = $extension['properties']['__value'];
} else {
if ($type instanceof SimpleType) {
// @todo ?? basta come controllo?
$property = array();
$property["expose"] = true;
$property["xml_value"] = true;
$property["access_type"] = "public_method";
$property["accessor"]["getter"] = "value";
$property["accessor"]["setter"] = "value";
if ($valueProp = $this->typeHasValue($type, $class, $parentName)) {
$property["type"] = $valueProp;
} else {
$property["type"] = key($extension);
}
$data["properties"]["__value"] = $property;
}
}
}
}