public function __construct($argumentName, $expectedTypes = NULL)
{
$message = sprintf('Invalid $%s argument.', $argumentName);
if (is_array($expectedTypes) && count($expectedTypes) > 0) {
$message .= ' Expected: ' . implode(', ', $expectedTypes);
} elseif (NULL !== $expectedTypes) {
$message .= ' Expected: ' . $expectedTypes;
}
parent::__construct($message);
}