private function visitAttribute(PHPClass $class, Schema $schema, AttributeItem $attribute, $arrayize = true)
{
$property = new PHPProperty();
$property->setName($this->getNamingStrategy()->getPropertyName($attribute));
if ($arrayize && ($itemOfArray = $this->isArrayType($attribute->getType()))) {
if ($attribute->getType()->getName()) {
$arg = new PHPArg($this->getNamingStrategy()->getPropertyName($attribute));
$arg->setType($this->visitType($itemOfArray));
$property->setType(new PHPClassOf($arg));
} else {
$property->setType($this->visitTypeAnonymous($attribute->getType(), $attribute->getName(), $class));
}
} else {
$property->setType($this->findPHPClass($class, $attribute, true));
}
$property->setDoc($attribute->getDoc());
return $property;
}