protected function putRequiredFirst(StructAttributeContainer $allAttributes)
{
$attributes = new StructAttributeContainer($this->getGenerator());
$requiredAttributes = new StructAttributeContainer($this->getGenerator());
$notRequiredAttributes = new StructAttributeContainer($this->getGenerator());
foreach ($allAttributes as $attribute) {
if ($attribute->isRequired()) {
$requiredAttributes->add($attribute);
} else {
$notRequiredAttributes->add($attribute);
}
}
foreach ($requiredAttributes as $attribute) {
$attributes->add($attribute);
}
foreach ($notRequiredAttributes as $attribute) {
$attributes->add($attribute);
}
unset($requiredAttributes, $notRequiredAttributes);
return $attributes;
}