< Summary

Information
Class: Spdx3.Model.Core.Classes.ExternalIdentifier
Assembly: Spdx3
File(s): /home/runner/work/Spdx3/Spdx3/Spdx3/Model/Core/Classes/ExternalIdentifier.cs
Line coverage
100%
Covered lines: 17
Uncovered lines: 0
Coverable lines: 17
Total lines: 63
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Comment()100%11100%
get_ExternalIdentifierType()100%11100%
get_Identifier()100%11100%
get_IdentifierLocator()100%11100%
get_IssuingAuthority()100%11100%
.ctor()100%11100%
.ctor(...)100%11100%
Validate()100%11100%
Accept(...)100%11100%

File(s)

/home/runner/work/Spdx3/Spdx3/Spdx3/Model/Core/Classes/ExternalIdentifier.cs

#LineLine coverage
 1using System.Diagnostics.CodeAnalysis;
 2using System.Text.Json.Serialization;
 3using Spdx3.Model.Core.Enums;
 4using Spdx3.Model.Lite;
 5using Spdx3.Serialization;
 6using Spdx3.Utility;
 7
 8// ReSharper disable UnusedMember.Global
 9
 10namespace Spdx3.Model.Core.Classes;
 11
 12/// <summary>
 13///     A reference to a resource identifier defined outside the scope of SPDX-3.0 content that uniquely identifies an
 14///     Element.
 15///     See https://spdx.github.io/spdx-spec/v3.0.1/model/Core/Classes/ExternalIdentifier/
 16/// </summary>
 17public class ExternalIdentifier : BaseModelClass, ILiteDomainCompliantElement
 18{
 19    [JsonPropertyName("comment")]
 20    [JsonConverter(typeof(SpdxModelConverterFactory))]
 1021    public string? Comment { get; set; }
 22
 23    [JsonPropertyName("externalIdentifierType")]
 24    [JsonConverter(typeof(SpdxModelConverterFactory))]
 6225    public required ExternalIdentifierType ExternalIdentifierType { get; set; }
 26
 27    [JsonPropertyName("identifier")]
 28    [JsonConverter(typeof(SpdxModelConverterFactory))]
 6429    public required string Identifier { get; set; }
 30
 31    [JsonPropertyName("identifierLocator")]
 32    [JsonConverter(typeof(SpdxModelConverterFactory))]
 6233    public IList<Uri> IdentifierLocator { get; } = new List<Uri>();
 34
 35    [JsonPropertyName("issuingAuthority")]
 36    [JsonConverter(typeof(SpdxModelConverterFactory))]
 1037    public string? IssuingAuthority { get; set; }
 38
 39    // protected internal no-parm constructor required for deserialization
 540    protected internal ExternalIdentifier()
 41    {
 542    }
 43
 44    [SetsRequiredMembers]
 45    public ExternalIdentifier(Catalog catalog, ExternalIdentifierType externalIdentifierType, string identifier) :
 4246        base(catalog)
 47    {
 4248        ExternalIdentifierType = externalIdentifierType;
 4249        Identifier = identifier;
 4250    }
 51
 52    public override void Validate()
 53    {
 554        base.Validate();
 455        ValidateRequiredProperty(nameof(Identifier));
 256        ValidateRequiredProperty(nameof(ExternalIdentifierType));
 257    }
 58
 59    public void Accept(ILiteDomainComplianceVisitor visitor)
 60    {
 261        visitor.Visit(this);
 262    }
 63}