public SpdxDocument ReadSbom()

in JetBrains.SbomUtils/src/JetBrains.SbomUtils/SbomReader.cs [29:58]


    public SpdxDocument ReadSbom(Stream stream)
    {
      SpdxDocument? spdxDocument;
      try
      {
        using (StreamReader file = new StreamReader(stream))
        {
          JsonSerializer serializer = new JsonSerializer();
          spdxDocument = serializer.Deserialize<SpdxDocument>(new JsonTextReader(file));
        }

        if (spdxDocument == null)
          throw new SbomValidationException("Failed to parse the SBOM");
      }
      catch (Exception e)
      {
        throw new SbomValidationException($"Failed to parse the SBOM: {e.Message}", e);
      }

      spdxDocument.Packages ??= new List<Package>();
      spdxDocument.Files ??= new List<File>();
      spdxDocument.Relationships ??= new List<Relationship>();

      _logger.LogDebug("Loaded {packages} packages, {files} files and {relationships} relationships",
        spdxDocument.Packages.Count,
        spdxDocument.Files.Count,
        spdxDocument.Relationships.Count);

      return spdxDocument;
    }