internal HtmlDataQualityCategory(
            [CanBeNull] DataQualityCategory category,
            [CanBeNull] HtmlDataQualityCategoryOptions options,
            [NotNull] HtmlDataQualityCategoryComparer categoryComparer,
            [NotNull] HtmlQualitySpecificationElementComparer elementComparer)
        {
            Assert.ArgumentNotNull(categoryComparer, nameof(categoryComparer));
            Assert.ArgumentNotNull(elementComparer, nameof(elementComparer));

            _category         = category;
            _categoryComparer = categoryComparer;
            _elementComparer  = elementComparer;

            if (category == null)
            {
                _isUndefinedCategory = true;
                _uniqueName          = "<nocategory>";

                _name         = string.Empty;
                _abbreviation = string.Empty;
            }
            else
            {
                _isUndefinedCategory = false;
                _uniqueName          = category.GetQualifiedName("||");

                _name         = GetDisplayName(category, options);
                _abbreviation = category.Abbreviation ?? string.Empty;
            }
        }