public final function AddTrait(TableTrait $Trait)
{
if ($Trait instanceof StructuralTableTrait) {
$this->StructuralTraits[] = $Trait;
$this->Traits[] = $Trait;
} else {
if ($Trait instanceof RelationalTableTrait) {
$this->RelationalTraits[] = $Trait;
$this->Traits[] = $Trait;
} else {
throw new \Storm\Core\UnexpectedValueException('The supplied trait must derive from either %s or %s: %s given', StructuralTableTrait::GetType(), RelationalTableTrait::GetType(), $Trait->GetType());
}
}
}