in JetBrains.SbomUtils/src/JetBrains.SbomUtils/SbomOperations.cs [15:31]
public ICollection<Package> FindRootPackageByName(SbomModel sbomModel, IEnumerable<string> rootPackageNames)
{
var describesRelationships = sbomModel.SpdxDocument.Relationships!.Where(r => r.RelationshipType == RelationshipType.DESCRIBES);
var rootPackagesSet = rootPackageNames.ToHashSet();
List<Package> result = new List<Package>();
foreach (var relationship in describesRelationships)
{
if (sbomModel.Packages.TryGetValue(relationship.RelatedSpdxElement, out var rootPackage))
{
if (rootPackagesSet.Contains(rootPackage.Name))
result.Add(rootPackage);
}
}
return result;
}