public function setShortName($shortName)
{
if (null !== $shortName) {
Assert::string($shortName, 'The short command name must be a string or null. Got: %s');
Assert::notEmpty($shortName, 'The short command name must not be empty.');
Assert::regex($shortName, '~^[a-zA-Z]$~', 'The short command name must contain a single letter. Got: %s');
}
// Reset short name preference when unsetting the short name
if (null === $shortName && false === $this->longNamePreferred) {
$this->longNamePreferred = null;
}
$this->shortName = $shortName;
return $this;
}