protected function validateAlias($alias, $fullCheck = false)
    {
        if (!$alias) {
            throw new Exception\InvalidArgumentException('The item alias must not be empty.');
        }
        if ($fullCheck) {
            if (!is_string($alias)) {
                throw new Exception\UnexpectedTypeException($alias, 'string', 'alias');
            }
            if (!$this->isValidId($alias)) {
                throw new Exception\InvalidArgumentException(
                    sprintf(
                        'The "%s" string cannot be used as the item alias because it contains illegal characters. '
                        . 'The valid alias should start with a letter and only contain '
                        . 'letters, numbers, underscores ("_"), hyphens ("-") and colons (":").',
                        $alias
                    )
                );
            }
        }
    }